目录
结构化查询语言
结构化查询语言(Structured Query Language),简称SQL,是数据库的标准查询语言。可以通过DBMS对数据库进行定义数据,操纵数据,查询数据,数据控制等
SQL可以分为:
1、数据定义语言(DDL)
Data dafinitaon Language
如创建表create
删除表drop
修改表alter
清空表truncate,彻底清空,无法找回。
查看所有数据库:show databases;
查看所有表:show tables;
modify
删除数据库 drop database db1802;
创建数据库 create database abc default character set utf8;
选择数据库 use abc;
创建表 create table p1(id int(3),name varchar(20));
查看表 desc p1
插入数据 nsert into p1 values(1,'张三');
添加表字段语句 alter table p1 add(age int(3));
删除表字段语句 alter table p1 drop id;
修改表字段类型格式 alter table p1 modify age varchar(2);
修改表字段名称 alter table p1 change age p1age int(3);
修改表名 alter table p1 rename per;
清空表结构 truncate table per;
删除表结构 drop table per;
修改命令提示符界面显示编码集:set names GBK
约束条件Constraint
对插入表中字段的数据起到一定的条件限制。
- 主键约束:primary key 要求作为主键的字段的字段值非空且唯一,一张表中只能有一个主键,但一个主键中可以有多个字段 AUTO_INCREMENT自增。
- 非空约束: not null 要求有非空约束的字段不可为null值。
- 唯一性约束:unique 要求有唯一性约束的字段不可以重复,但是可以为null.
- 检查性约束:check(条件)--- check(gender in('f','m')) 要求在插入数据时必须符合字段的检查条件,可以为null
- 外键约束: foreign key 要求有外键约束的字段A必须依赖于另外一个字段B,字段B要有主键约束。字段A的值,要么是null,要么 必须是字段B里的值。
序列: 作用用来给作为主键约束的字段进行有序的自增。auto_increment 默认序列是从1开始,每次自增+1;
create table t_01
(tid int primary key auto_increment, --主键约束,不能重复,不能为空,自增
tname varchar(20) not null, --非空约束
IdCard varchar(20) unique, --唯一性约束
gender enum('男','女'), --检查性约束
mgr int,
foreign key(mgr) references t_01(tid) --外键约束,被约束的字段存放的数据要么是null,要么是主键中有的
);
2、数据操纵语言(DML)
insert:向表中插入数据
delete:删除表中的数据,格式:delete from tableName [where 条件]
update:修改表中的数据 格式:update tableName set colName1=value1[,colName2=value2] [where 条件]
where 条件: 对表中的数据增加条件进行限制,起到过滤的作用。
格式: where colName 关系运算符 value [or|and 条件2]
关系运算符: >,>=,<,<=, 等于:=,不等于:!= 或 <>
null值操作:比较null时,不能使用=或者!= 或者<>,而是使用 is或者is not,在select子句中,使用关系运算符
练习
--创建一个表
create table temp_day02(
tid int,
tname varchar(20),
birth date,
address varchar(50)
);
--================================================================================
--插入数据 1001,'jack' ,'上海' ,下面是两种插入方式,第二种可以批量插入。只需添加多个用逗号隔开即可
insert into temp_t02 values (1001,'jack',null,'上海');
insert into temp_t02(tid,tname,address) values(1002,'rose','beijing');
--==============================================================